This invention relates to magnetic memories, and more specifically to magnetic memories that are non-volatile and used as cache memories.
Analysis of a large number of typical computer programs and the like has shown that the reference to the main memory at any given interval of time tends to be confined within a few areas of the main memory. This is known as the property of xe2x80x9clocality of referencexe2x80x9d.
In general, memory references to instructions tend to be highly localized whereas references to data are not as localized. If most references, instructions or data, are placed in a fast and small memory, the average general memory access time can be reduced, thus, reducing the total execution time of the program. Such a small and fast memory is generally known as a cache memory.
The idea behind a cache memory is to keep the most frequently accessed instructions and data in a fast cache memory. As a result, the average memory access time will approach the access time of the cache memory. Although the cache memory is a small fraction of the size of the main memory, a large portion of memory requests will be found in the cache memory, due to the locality of reference property of instructions and/or data.
When the central processing unit (CPU) of the computer needs to access memory, the cache is interrogated. If the word is found in the cache memory, it is read from a fast memory portion of the cache memory. If the word is not found in the cache memory, the slower main memory is accessed to read the word. A block of words, associated with the word just accessed from the main memory, is then transferred from the main memory to the cache memory. The block size could be one or several words adjacent to the word just accessed. In this way, some data is transferred to the cache memory so that future references to the cache memory can find the required word or words in the cache memory.
When the CPU finds a word in the cache memory it is known as a xe2x80x9chitxe2x80x9d and if the word is not in the cache but is present in the main memory it is known as a xe2x80x9cmissxe2x80x9d. The xe2x80x9chit ratioxe2x80x9d is calculated by dividing the number of hits by the number of hits plus the number of misses. A hit ratio of 0.9 or better is desired.
The average memory access time of a CPU can be improved by the use of a cache memory. If the hit ratio is high enough, the average access time will approach the access time of the cache memory. The most important characteristic of a cache memory is that it have super-fast access time. Therefore, extremely small time, or no time at all, must be spent when searching for a word in the cache memory.
In the prior art, SRAMs are used as cache memories because they are fast. However, SRAMs are volatile and, hence, each time the computer is shut-down the cache memory loses all of the information. These volatile SRAM cache memories have a big problem known as xe2x80x9cCache Initializationxe2x80x9d. Typically, upon power-up an initialization condition is forced upon the cache memory, such that it has the effect of forcing misses from the cache until it fills with valid data or instructions such that the property of xe2x80x9clocality of referencexe2x80x9d starts to work. This initialization can require relatively large amounts of time after each power-up.
The present invention contemplates non-volatile magnetic cache memories, and the fabrication thereof, to overcome many of the above described problems.
The present invention also contemplates non-volatile magnetic cache memories with new and novel access and readout structure to overcome many of the above described problems.
The present invention further contemplates non-volatile magnetic cache memories constructed for additional speed in search and readout modes to overcome many of the above described problems.